package com.shujia.hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

public class Code02UpFile {
    public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
        Configuration conf = new Configuration();
        // 可以通过conf对象设置连接参数，参数的Key及Value可以参考Hadoop的配置文件
        conf.set("fs.defaultFS","hdfs://master:9000");

        // 由于当前FileSystem没有构造方法 可以通过get
        FileSystem fileSystem = FileSystem.get(conf);

        // 添加用户信息
        // 方式一：
//        FileSystem fileSystem = FileSystem.get(new URI("hdfs://master:9000"), conf,"root");

        // 方式二：
        // 在系统环境变量中添加 HADOOP_USER_NAME 值为用户名

        // 方式三：
//        System.setProperty("HADOOP_USER_NAME","root");

        // 方式四：
        //  VM启动配置信息里可以添加 -HADOOP_USER_NAME=root


        // org.apache.hadoop.hdfs.DistributedFileSystem
//        System.out.printf("连接成功... FileSystem子实现类："+fileSystem.getClass().getName());
        // 上传路径如果是目录需要在末尾加上/
        fileSystem.copyFromLocalFile(new Path("D:\\HadoopCode\\data\\aaa.txt"),new Path("/data/ddd.txt"));

        fileSystem.close();
    }
}
